package com.ruoyi.manage.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 薪资对象 sal_salary
 * 
 * @author cf
 * @date 2025-06-05
 */
public class SalSalary extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 员工ID */
    @Excel(name = "员工ID")
    private Long staffId;

    /** 基础工资 */
    @Excel(name = "基础工资")
    private BigDecimal baseSalary;

    /** 加班费 */
    @Excel(name = "加班费")
    private BigDecimal overtimeSalary;

    /** 生活补贴 */
    @Excel(name = "生活补贴")
    private BigDecimal subsidy;

    /** 奖金 */
    @Excel(name = "奖金")
    private BigDecimal bonus;

    /** 当前月份（格式：YYYY-MM） */
    @Excel(name = "当前月份", readConverterExp = "格=式：YYYY-MM")
    private String nowMonth;

    /** 迟到扣款 */
    @Excel(name = "迟到扣款")
    private BigDecimal lateDeduct;

    /** 休假扣款 */
    @Excel(name = "休假扣款")
    private BigDecimal putOffDeduct;

    /** 早退扣款 */
    @Excel(name = "早退扣款")
    private BigDecimal leaveEarlyDeduct;

    /** 旷工扣款 */
    @Excel(name = "旷工扣款")
    private BigDecimal absenteeismDeduct;

    /** 总工资 */
    @Excel(name = "总工资")
    private BigDecimal totalSalary;


    public BigDecimal getHouseBase() {
        return houseBase;
    }

    public void setHouseBase(BigDecimal houseBase) {
        this.houseBase = houseBase;
    }

    public BigDecimal getIndividualHouseRate() {
        return individualHouseRate;
    }

    public void setIndividualHouseRate(BigDecimal individualHouseRate) {
        this.individualHouseRate = individualHouseRate;
    }

    public BigDecimal getIndividualHousePay() {
        return individualHousePay;
    }

    public void setIndividualHousePay(BigDecimal individualHousePay) {
        this.individualHousePay = individualHousePay;
    }

    public BigDecimal getSocialBase() {
        return socialBase;
    }

    public void setSocialBase(BigDecimal socialBase) {
        this.socialBase = socialBase;
    }

    public BigDecimal getIndividualSocialPay() {
        return individualSocialPay;
    }

    public void setIndividualSocialPay(BigDecimal individualSocialPay) {
        this.individualSocialPay = individualSocialPay;
    }

    // 只保留个人部分
    private BigDecimal houseBase;            // 公积金基数
    private BigDecimal individualHouseRate;  // 公积金个人比例
    private BigDecimal individualHousePay;   // 公积金个人缴纳金额
    private BigDecimal socialBase;          // 社保基数
    private BigDecimal individualSocialPay; // 社保个人缴纳金额


    /** 逻辑删除：0未删除，1删除 */
    private Integer isDeleted;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setStaffId(Long staffId) 
    {
        this.staffId = staffId;
    }

    public Long getStaffId() 
    {
        return staffId;
    }
    public void setBaseSalary(BigDecimal baseSalary) 
    {
        this.baseSalary = baseSalary;
    }

    public BigDecimal getBaseSalary() 
    {
        return baseSalary;
    }
    public void setOvertimeSalary(BigDecimal overtimeSalary) 
    {
        this.overtimeSalary = overtimeSalary;
    }

    public BigDecimal getOvertimeSalary() 
    {
        return overtimeSalary;
    }
    public void setSubsidy(BigDecimal subsidy) 
    {
        this.subsidy = subsidy;
    }

    public BigDecimal getSubsidy() 
    {
        return subsidy;
    }
    public void setBonus(BigDecimal bonus) 
    {
        this.bonus = bonus;
    }

    public BigDecimal getBonus() 
    {
        return bonus;
    }
    public void setNowMonth(String nowMonth) 
    {
        this.nowMonth = nowMonth;
    }

    public String getNowMonth() 
    {
        return nowMonth;
    }
    public void setLateDeduct(BigDecimal lateDeduct) 
    {
        this.lateDeduct = lateDeduct;
    }

    public BigDecimal getLateDeduct() 
    {
        return lateDeduct;
    }
    public void setPutOffDeduct(BigDecimal putOffDeduct) 
    {
        this.putOffDeduct = putOffDeduct;
    }

    public BigDecimal getPutOffDeduct() 
    {
        return putOffDeduct;
    }
    public void setLeaveEarlyDeduct(BigDecimal leaveEarlyDeduct) 
    {
        this.leaveEarlyDeduct = leaveEarlyDeduct;
    }

    public BigDecimal getLeaveEarlyDeduct() 
    {
        return leaveEarlyDeduct;
    }
    public void setAbsenteeismDeduct(BigDecimal absenteeismDeduct) 
    {
        this.absenteeismDeduct = absenteeismDeduct;
    }

    public BigDecimal getAbsenteeismDeduct() 
    {
        return absenteeismDeduct;
    }
    public void setTotalSalary(BigDecimal totalSalary) 
    {
        this.totalSalary = totalSalary;
    }

    public BigDecimal getTotalSalary() 
    {
        return totalSalary;
    }
    public void setIsDeleted(Integer isDeleted) 
    {
        this.isDeleted = isDeleted;
    }

    public Integer getIsDeleted() 
    {
        return isDeleted;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("staffId", getStaffId())
            .append("baseSalary", getBaseSalary())
            .append("overtimeSalary", getOvertimeSalary())
            .append("subsidy", getSubsidy())
            .append("bonus", getBonus())
            .append("nowMonth", getNowMonth())
            .append("lateDeduct", getLateDeduct())
            .append("putOffDeduct", getPutOffDeduct())
            .append("leaveEarlyDeduct", getLeaveEarlyDeduct())
            .append("absenteeismDeduct", getAbsenteeismDeduct())
            .append("totalSalary", getTotalSalary())
            .append("remark", getRemark())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("isDeleted", getIsDeleted())
            .toString();
    }
}
